/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.me.hello;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.net.URL;

/**
 *
 * @author Ana
 */
public class Barremina{
    
    private static int CANTIDAD_FILAS = 3;
    private static int TAMANIO_CELDA = 90;
    private static String RUTA_IMAGEN = "images/barremina_";
    private static String RUTA_IMAGEN_EXPLOSION = "images/explosion_barco.png";

    private int posX;
    private int posY;
    private java.awt.Image imagen;
    private java.awt.Image imagenExplosion;
    private URL urlImagen;
    private Rectangle cuadrante;
    private String orientacion;
    private boolean seHundioBarco;
    private Rectangle vision;
    
    public Barremina() {

    }
    public Barremina(int posX, int posY,String orientacion) {
        this.posX = posX;
        this.posY = posY;
        
        urlImagen = getClass().getClassLoader().getResource(RUTA_IMAGEN + orientacion + ".png");
        imagen = java.awt.Toolkit.getDefaultToolkit().getDefaultToolkit().createImage(urlImagen);
        
        URL urlImagenExplosion = getClass().getClassLoader().getResource(RUTA_IMAGEN_EXPLOSION);
        imagenExplosion = java.awt.Toolkit.getDefaultToolkit().getDefaultToolkit().createImage(urlImagenExplosion);

        int tamanioCuadrante = CANTIDAD_FILAS * TAMANIO_CELDA;
        this.cuadrante = new Rectangle(this.posX, this.posY,tamanioCuadrante , tamanioCuadrante);
        this.orientacion = orientacion;
         vision = new Rectangle();
    }
    public Rectangle getVision() {
        return vision;
    }

    public void setVision(Rectangle vision) {
        this.vision = vision;
    }
    public String GetOrientacion()
    {
        return this.orientacion;
    }
    public void SetOrientacion(String ori)
    {
        this.orientacion = ori;
    }

    public int getPosX() {
        return posX;
    }

    public void setPosX(int posX) {
        this.posX = posX;
    }

    public int getPosY() {
        return posY;
    }

    public void setPosY(int posY) {
        this.posY = posY;
    }

    public boolean isSeHundioBarco() {
        return seHundioBarco;
    }

    public void setSeHundioBarco(boolean seHundioBarco) {
        this.seHundioBarco = seHundioBarco;
    }
    
    public void display(Graphics g)
    {    
        g.setColor(Color.GRAY);    
        Graphics2D g2 = (Graphics2D) g;

        for( int i = 0; i < CANTIDAD_FILAS; i ++) {
            for( int j = 0; j < CANTIDAD_FILAS; j++) {
                Rectangle grid = new Rectangle( this.posX + i * TAMANIO_CELDA, this.posY + j * TAMANIO_CELDA, TAMANIO_CELDA, TAMANIO_CELDA);   
                g2.draw(grid);
            }
        }
        
        if(!this.seHundioBarco)
        {
            g.drawImage(this.imagen, (this.posX + TAMANIO_CELDA), (this.posY + TAMANIO_CELDA), null);
        } else 
        {
            g.drawImage(this.imagenExplosion, (this.posX + TAMANIO_CELDA), (this.posY + TAMANIO_CELDA), null);
        }
    }
    
        public void DibujarRangoVision(int x, int y)
    {
        vision.setLocation(x, y);
        
    }
    
    public void moverBarco(int x, int y) {
        urlImagen = getClass().getClassLoader().getResource(RUTA_IMAGEN + orientacion + ".png");
        imagen = java.awt.Toolkit.getDefaultToolkit().getDefaultToolkit().createImage(urlImagen);

        int nuevaPosX = x - TAMANIO_CELDA;
        int nuevaPosY = y - TAMANIO_CELDA;
        //Mueve el barco
        this.setPosX(nuevaPosX);
        this.setPosY(nuevaPosY);
        //Mueve el cuadrante
        this.cuadrante.setLocation(nuevaPosX, nuevaPosY);

    }
    
    public boolean hizoClickEnCuadrante(int x, int y) {
        return (this.cuadrante.contains(x, y));
    }
}
